The invention generally relates to a distributed database name registry for the Internet well-known as the Domain Name System (DNS) and, more particularly, to a method for dynamically notifying the DNS global database to reflect the loss and re-establishment of network connectivity of hosts or networks from the Internet.
In the 1970""s and early 1980""s, the Internet comprised a small collection of educational and military networks, to which networks computers were attached which were represented by simple names. The names of the computers were, and still are, easier to remember than their network addresses which are required for communication over the network. As a consequence, a small text file containing the name and address of all computers was made available for download to all users on the network. Users could place a copy of the text file on their computers for use in translating a computer name to its associated Internet address. Software that needed to communicate with the named computer could then look up the computer address associated with the name in the text file, and then send messages to the computer address over the network.
As the Internet grew, the foregoing rather primitive address-to-name translation method became intractable. Eventually, a system, commonly referred to as the Domain Name System (DNS), was designed to make the name-to-address association for computers scaleable. DNS is a standard that defines the data schema and query and response protocols for a distributed database. Unlike the past when simple names were associated with computer network addresses, DNS defines mappings from hierarchical domain names to sets of generic resource records (RR""s). A network address is one type of resource record (RR). But DNS also defines other RR types that are useful in the Internet. Some of the other commonly used RR types include mail exchange and canonical name. DNS further defines how the hierarchical domain name space is partitioned into zones, wherein a specific database server (name server) is only responsible for knowing the information contained in a small set of zones. Zones allow the responsibility for the maintenance of domain name-to-resource mappings to be distributed in a hierarchical fashion to the entities that administer the resources.
The hierarchical and distributed nature of DNS has accommodated the scale of growth the Internet has recently seen, but DNS was based on a few assumptions about the Internet which are becoming less accurate as the Internet continues to grow.
Firstly, it was designed around the assumption that the data it maintains would change very infrequently. Thus, the standard method of modifying the data stored in DNS has been to modify a flat text file, which is the input file for a DNS name server. As discussed above, a name server refers to a program that stores information about the DNS. Name servers typically have complete information about a part or multiple parts of the DNS that is applicable to the program. The area of authority is called a zone. Name servers contain data files that store RR""s that describe the zone. One of the functions provided by the name server is to provide DNS domain name to address mapping for the zone.
Once the zone file are modified, the name server is then told to re-read its entire input file into memory in order to obtain a copy of the modifications. Not until the recent Request For Comments (RFC) standards documents published by the Internet Engineering Task Force [RFC 2136 and RFC 2137], have protocols been defined that allow a client computer to securely and dynamically insert, update, and delete information stored in the DNS.
Secondly, the design of DNS assumed that the computers in the network would be continuously connected to the network. More generally, DNS was designed under the assumption that the resources identified by the RR""s would always be available to the network as a whole.
As more computers are gaining access to the Internet, it is becoming more common for many such computers to frequently access the Internet via a dial-up connection for a period of time, after which period of time the computer is disconnected. Additionally, as a result of a limited address space that has been allocated to many networks, a protocol referred to as Dynamic Host Configuration Protocol (DHCP) has been developed which enables computers to periodically connect and disconnect to and from such networks. Therefore, the second design assumption mentioned above is less generally applicable than it was when it was made.
There are other drawbacks to assuming that computers are continuously connected to the Internet. For example, there is no way for DNS to return an alternate address for a computer that is not connected to the Internet. Furthermore, when a network becomes disconnected from the Internet, there is no way to provide any indication via DNS of when that network will be reconnected.
Therefore, what is needed is a mechanism to keep DNS name servers constantly aware of the connectivity of the computers that provide resources named in the Domain Name System. It can be appreciated that it would be desirable for a name server to be able to provide intelligent responses to queries for resources that are not connected to the network at a particular time, wherein such responses include alternate addresses as well as an indication of when resources will be available again.
In accordance with the present invention, a method is provided which defines two related protocols. The first protocol allows a customer to create, modify and delete logical groups of resource records, defined as Dynamic Topology Groups (DTG""s), within a specific domain name zone. A DTG is a group of DNS resource records that refer to groups of resources that are on some part of the Internet whose connectivity to the Internet is dynamic. The second protocol requires a client computer in the network associated with the DTG to periodically send a heartbeat message to the primary master name server for the DTG""s domain name zone. The heartbeat message is used by the primary master name server to determine if the network associated with the DTG is still connected. Once a name server is able to determine whether or not network resources referenced by its resource records are available, it can then give a negative response to a client issuing a query for resources that are not available. A negative response from DNS for a resource that is not connected to the Internet has the advantage of more quickly informing the client that the resource being queried is unavailable. Furthermore, a name server can provide additional information in the response to the query, such as a text message that can give information to the client, or an indication of when the resource is expected to again become available.